import * as React from 'react'; import { Flex, SelectField, SliderField, SwitchField, TextField, TextProps, TextVariation, } from '@aws-amplify/ui-react'; export interface TextPropControlsProps extends TextProps { setAs: (value: React.SetStateAction) => void; setVariation: (value: React.SetStateAction) => void; setIsTruncated: ( value: React.SetStateAction ) => void; setColor: (value: React.SetStateAction) => void; setLineHeight: (value: React.SetStateAction) => void; setFontWeight: (value: React.SetStateAction) => void; setFontStyle: (value: React.SetStateAction) => void; setFontSize: (value: React.SetStateAction) => void; setTextDecoration: ( value: React.SetStateAction ) => void; value: string; setValue: (value: string) => void; } interface TextPropControlsInterface { (props: TextPropControlsProps): JSX.Element; } export const TextPropControls: TextPropControlsInterface = ({ variation, setVariation, as, setAs, isTruncated, setIsTruncated, color, setColor, lineHeight, setLineHeight, fontWeight, setFontWeight, fontSize, setFontSize, fontStyle, setFontStyle, textDecoration, setTextDecoration, value, setValue, }) => { const VARIATIONS_OPTIONS: TextVariation[] = [ 'primary', 'secondary', 'tertiary', 'error', 'warning', 'info', 'success', ]; const AS_OPTIONS = ['p', 'span', 'strong', 'em']; return ( setValue(event.target.value)} value={value} > setVariation(event.target.value as TextVariation)} label="variation" > {VARIATIONS_OPTIONS.map((option) => ( ))} setAs(event.target.value as TextProps['as'])} label="as" > {AS_OPTIONS.map((option) => ( ))} setColor(event.target.value)} /> setIsTruncated(event.target.checked)} /> setLineHeight(event.target.value)} /> setFontSize(event.target.value)} /> setFontStyle(event.target.value)} /> setTextDecoration(event.target.value)} /> ); };